/* Copyright 2011 Elektrobit Wireless Communications Oy (EB)


  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License version 2 as 
  published by the Free Software Foundation.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License along
  with this program; if not, write to the Free Software Foundation, Inc.,
  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.


 *All rights reserved 
 *Version:Elektrobit_Qt_1.0.0_20110305 */


#ifndef PAGE_H
#define PAGE_H

#include <QObject>
#include <QHash>
#include <QMetaType>
#include <QMouseEvent>

class PageView;

class Page : public QObject {
    Q_OBJECT
public:
    Page(QObject *parent = 0);
    Page(const Page &page);
    int setPageView(PageView *pageView);
    
    void show();
    void hide();
    bool isPageViewShow();
    void mouseEvent(QMouseEvent *event);
    virtual int init() = 0;
    virtual int uninit() = 0;
    virtual int beforeShow() = 0;
    virtual int afterShow() = 0;
    
    virtual int onClick(int key) = 0;    
    virtual int onTouch(const QString &type, const QHash<QString, QString> *args) = 0;
protected:
    PageView *mPageView;
};

#endif // PAGE_H
